home *** CD-ROM | disk | FTP | other *** search
/ NetNews Offline 2 / NetNews Offline Volume 2.iso / news / comp / lang / c-part1 / 7786 < prev    next >
Encoding:
Internet Message Format  |  1996-08-05  |  1.9 KB

  1. Path: mail2news.demon.co.uk!genesis.demon.co.uk
  2. From: Lawrence Kirby <fred@genesis.demon.co.uk>
  3. Newsgroups: comp.lang.c
  4. Subject: Re: gettimeofday() makes me mad !
  5. Followup-To: comp.unix.programmer
  6. Date: Wed, 28 Feb 96 20:13:33 GMT
  7. Organization: none
  8. Distribution: inet
  9. Message-ID: <825538413snz@genesis.demon.co.uk>
  10. References: <4gnkth$4on@piston.ecp.fr>
  11. Reply-To: fred@genesis.demon.co.uk
  12. X-NNTP-Posting-Host: genesis.demon.co.uk
  13. X-Newsreader: Demon Internet Simple News v1.27
  14. X-Mail2News-Path: genesis.demon.co.uk
  15.  
  16. In article <4gnkth$4on@piston.ecp.fr> dureta8@cti.ecp.fr "BIG ONE" writes:
  17.  
  18. >        Hello all. If someone could help...
  19. >
  20. >COMPILER : gcc, or cc on a Unix system.
  21. >
  22. >PROBLEM : I'm trying to make a little program which must repeat an
  23. >action every .2 second for example ( less than 1 sec anyway). time()
  24. >wouldn't fit, so I searched and found the function gettimeofday() in
  25. ><sys/time.h>.
  26.  
  27. Unfortunately gettimeofday() is not defined by the C language so you should
  28. discuss it in comp.unix.programmer.
  29.  
  30. >It gives the time elapsed since 1970 in seconds and
  31. >microseconds. The problem is that when gettimeofday() is called several
  32. >times, it finally hangs up ! My program looks like this : 
  33. >
  34. >  struct timeval t ;
  35. >  long useconds ;
  36. >
  37. >  gettimeofday(&t) ;
  38.  
  39. On my system gettimeofday takes 2 arguments.
  40.  
  41. >  printf("%ld\n",(usecondes = t.tv_usec)) ;
  42. >
  43. >  for (;;) {
  44. >    /* ... */ /*this part works fine */
  45. >    gettimeofday(&t) ;
  46. >    if (t.tv_usec > usecondes + 200000) {
  47.  
  48. Presumably the tv_usec holds the fractional part of the time so cycles
  49. within a range 0->999999. So if usecondes is 799999 or greater this test can
  50. never succeed. You will need to formulate the test in terms of both of
  51. the time components.
  52.  
  53. Followups set to comp.unix.programmer.
  54.  
  55. -- 
  56. -----------------------------------------
  57. Lawrence Kirby | fred@genesis.demon.co.uk
  58. Wilts, England | 70734.126@compuserve.com
  59. -----------------------------------------
  60.